Passed
Pull Request — master (#112)
by Mathieu
01:50
created

HolidayToEventsConverter.convert   A

Complexity

Conditions 3

Size

Total Lines 17
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 14
dl 0
loc 17
c 0
b 0
f 0
rs 9.7
cc 3
1
import {Inject} from '@nestjs/common';
2
import {
3
  Holiday,
4
  HolidayLeaveType
5
} from '../../HumanResource/Holiday/Holiday.entity';
6
import {Event, EventType} from 'src/Domain/FairCalendar/Event.entity';
7
import {IEventRepository} from '../Repository/IEventRepository';
8
import {IDateUtils} from 'src/Application/IDateUtils';
9
10
export class HolidayToEventsConverter {
11
  constructor(
12
    @Inject('IEventRepository')
13
    private readonly eventRepository: IEventRepository,
14
    @Inject('IDateUtils')
15
    private readonly dateUtils: IDateUtils
16
  ) {}
17
18
  public async convert(holiday: Holiday): Promise<void> {
19
    const type =
20
      holiday.getLeaveType() === HolidayLeaveType.MEDICAL
21
        ? EventType.MEDICAL_LEAVE
22
        : EventType.HOLIDAY;
23
24
    const dates = this.dateUtils.getWorkedDaysDuringAPeriod(
25
      new Date(holiday.getStartDate()),
26
      new Date(holiday.getEndDate())
27
    );
28
29
    for (const date of dates) {
30
      //if ()
31
32
      this.eventRepository.save(
33
        new Event(type, holiday.getUser(), 100, date.toISOString())
34
      );
35
    }
36
  }
37
}
38